const options = [
  {
    title: 'Array',
    list: [
      {
        key: 'concat',
        title: 'concat',
        desc: '连接两个或多个数组，并返回已连接数组的副本。',
        code: `let persons1 = ['jom', 'jack', 'tom'];
          let persons2 = ['david', 'john'];
          let persons3 = persons.concat(persons2);
          // 可以是多个数组，用逗号分隔
          console.log(persons3);
          // ['jom', 'jack', 'tom', 'david', 'john']
        `
      },
      {
        key: 'every',
        title: 'every',
        desc: '检查数组中的每个元素是否通过测试',
        code: `let nums = [5, 4, 7, 12, 9];
        console.log(nums.every((item) => {// false
          return item > 4;
        }));`
      },
      {
        key: 'some',
        title: 'some',
        desc: '检查数组中的任何元素是否通过测试，用法与every类似。<br>但是some传入的函数只要返回true，则some直接返回true。<br>且不进行之后的判断；如果都不返回true，则返回false',
        code: ``,
      },
      {
        key: 'filter',
        title: 'filter',
        desc: '使用数组中通过测试的每个元素创建新数组。',
        code: `let nums = [5, 4, 7, 12, 9];
        let numsAfterFilter = nums.filter(function (item) {
          // 传入函数的参数同every
          return item > 5;
          // 创建数值大于五的新数组，不影响原数组
        });
        console.log(numsAfterFilter); // [7, 12, 9]
        // 如果没有满足项返回空数组`
      },
      {
        key: 'find',
        title: 'find',
        desc: '返回数组中第一个通过测试的元素的值。',
        code: `let nums = [5, 4, 7, 12, 9];
        let numsAfterFilter = nums.find(function (item) { // 传入函数的参数同every
          return item > 9;
          // 返回第一个大于9的数，不影响原数组，如果找到符合项就停止遍历
        });
        console.log(numsAfterFilter); // 12
        // 如果没有满足项返回undefined`,
      },
      {
        key: 'findIndex',
        title: 'findIndex',
        desc: '用法与find类似，返回数组中通过测试的第一个元素的索引。<br>如果没有满足项返回-1。',
        code: ``,
      },
      {
        key: 'forEach',
        title: 'forEach',
        desc: '为每个数组元素调用函数。',
        code: `let nums = [5, 4, 7, 12, 9];
        nums.forEach(function (item, index) { // 传入函数的参数同every
          console.log(item, index); // 输出:值 索引
          // 不需要返回值
        });
        // 5 0
        // 4 1
        // 7 2
        // 12 3
        // 9 4`,
      },
      {
        key: 'map',
        title: 'map',
        desc: '使用为每个数组元素调用函数的结果创建新数组，不改变原数组。',
        code: `let nums = [5, 4, 7, 12, 9];
        let newNums = nums.map(function (item, index) { // 传入函数的参数同every
          return item + 3
          // 需要返回值,=
        });
        console.log(newNums); // [8, 7, 10, 15, 12]`,
      },
      {
        key: 'includes',
        title: 'includes',
        desc: '检查数组是否包含指定的元素。<br>如果数组包含该元素，则返回true，否则返回false。',
        code: `let persons = ['jom', 'jack', 'tom'];
        console.log(persons.includes('jack')); // true
        console.log(persons.includes('Tom')); // false
        console.log(persons.includes('jom', 1)); // false
        // includes可以传入第二个参数，可选，为在数组中的哪个位置开始搜索。`,
      },
      {
        key: 'indexOf',
        title: 'indexOf',
        desc: '在数组中搜索元素并返回其位置。',
        code: `let persons = ['jom', 'jack', 'tom', 'tom', 'john'];
        console.log(persons.indexOf('jack')); // 1
        console.log(persons.indexOf('tom')); // 2
        // 当有些项出现多次，则返回第一次出现的位置
        console.log(persons.indexOf('Tom')); // -1
        // 如果没有找到该项，返回-1
        console.log(persons.indexOf('tom', 3)); // 3
        // indexOf可以传入第二个参数，可选，为在数组中的哪个位置开始搜索
        console.log(persons.indexOf('tom', -4)); // 2
        // 可以传入负值，则从结尾开始计数，之后搜索到结尾`,
      },
      {
        key: '',
        title: '',
        desc: '',
        code: ``,
      },
      {
        key: '',
        title: '',
        desc: '',
        code: ``,
      },
    ]
  },
  {
    title: 'String',
    list: [
      {
        key: 'indexOf',
        title: 'indexOf',
        desc: '用法与Array的indexOf方法类似，可以返回某个指定的字符串值在字符串中首次出现的位置。',
        code: `let str = '12345789';
        console.log(str.indexOf('5')); // 4
        console.log(str.indexOf('5', 5)); // -1 从位置5开始检索，没有找到返回-1`,
      },
      {
        key: 'slice',
        title: 'slice',
        desc: '可以提取字符串某个部分，并返回被提取的部分。',
        code: `let str = '123456';
        let newStr1 = str.slice(1);
        console.log(newStr1); // 23456
        let newStr2 = str.slice(2,4);
        console.log(newStr2); // 34`
      },
    ]
  },
  {
    title: 'Data',
    list: [
      {
        key: 'fullYear',
        title: 'getFullYear()\nsetFullYear()',
        desc: '获取/设置年份',
        code: ``
      },
      {
        key: 'month',
        title: 'getMonth()\nsetMonth()',
        desc: '获取/设置月份（0~11）',
        code: ``
      },
    ]
  }
];

/*
{
  key: '',
  title: '',
  desc: '',
  code: ``,
},
*/
